package com.yq.chaos.base.app;

import com.alibaba.android.arouter.launcher.ARouter;
import com.apkfuns.logutils.LogUtils;
import com.bumptech.glide.Glide;
import com.tencent.tinker.loader.app.TinkerApplication;
import com.yq.chaos.BuildConfig;
import com.yq.chaos.base.loader.LoaderManager;

import butterknife.ButterKnife;

/**
 * application 父类
 */

public class BaseApp extends TinkerApplication {
    private SplashAdWrapper mSplashAdWrapper;
    public BaseApp(int tinkerFlags, String delegateClassName, String loaderClassName, boolean tinkerLoadVerifyFlag) {
        super(tinkerFlags, delegateClassName, loaderClassName, tinkerLoadVerifyFlag);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        ButterKnife.setDebug(BuildConfig.ISDEBUG);
        if (BuildConfig.ISDEBUG) {           // 这两行必须写在init之前，否则这些配置在init过程中将无效
            ARouter.openLog();     // 打印日志
            ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
        }
        ARouter.init(this); // 尽可能早，推荐在Application中初始化
        LoaderManager.getLoader().init(this);
        initLog();
        mSplashAdWrapper=new SplashAdWrapper(this);
    }

    /**
     * 初始化log
     */
    public void initLog(){
        LogUtils.getLogConfig()
                .configAllowLog(BuildConfig.LOG)
                .configTagPrefix(getPackageName())
                .configShowBorders(true)
                .configFormatTag("%d{HH:mm:ss:SSS} %t %c{-5}");

        // 支持写入日志到文件
        // <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//        LogUtils.getLog2FileConfig().configLog2FileEnable(true)
//                // targetSdkVersion >= 23 需要确保有写sdcard权限
//                .configLog2FilePath("/sdcard/项目文件夹/logs/")
//                .configLog2FileNameFormat("%d{yyyyMMdd}.txt")
//                .configLogFileEngine(new LogFileEngineFactory());
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
        //低内存的时候,清理Glide的缓存
        Glide.get(this).clearMemory();
    }


}
